<html>

<head>
    <title>消息是什么？</title>
</head>

<body>
    <table width=100%>
        <tr>
            <td align=left>
                <a href="object.html"><img src=../../images/PreviousArrow.gif width=26 height=26 align=bottom border=0
                        alt="Previous | "></a><a href="class.html"><img src=../../images/NextArrow.gif width=26
                        height=26 align=bottom border=0 alt="Next | "></a><a href="../../index.html"><img
                        src=../../images/WayUpArrow.gif width=26 height=26 align=bottom border=0
                        alt="Trail Map | "></a><a href="../index.html"><img src=../../images/javaHeader.gif width=26
                        height=26 align=bottom border=0 alt="Writing Java Programs | "></a>
            <td>
            <td align=right>
                <a href="index.html"><strong><em>面向对象编程概念：入门</em></strong></a>
            </td>
        </tr>
    </table>
    <p>
        <hr size=4>

    <h2>
        消息是什么？
    </h2>
    <p>
    <blockquote>
		单个对象通常不太有用，通常作为包含许多其他对象的大型程序或应用程序的单个组件出现。通过这些对象的交互，程序员可以实现更高阶的功能和更复杂的行为。你的自行车挂在车库的挂钩上，不过是一堆钛合金和橡胶；自行车本身不能活动。只有当另一个对象（比如你）与自行车交互（开始踩脚踏板）时，自行车才有用。
        <p>
            软件对象通过<em>消息</em>相互交互和通信。当对象A希望对象B执行其方法之一时，对象A向对象B发送消息。
        <p>
            <center><img src="images/message.trans.gif" width=342 height=246></center>
        <p>
            有时，接收对象需要更多信息，以便它确切地知道该做什么——当你想在自行车上换档时，你必须指明你想要的档位。此信息与消息一起作为<em>参数</em>传递。 
        <p>
            <center><img src="images/bikemessage.trans.gif" width=350 height=260></center>

        <p>
            信息由三个部分组成： 
        <ol>
            <li>
                消息发送到的对象（比如自行车）
            <li>
                要执行的方法的名称（比如换档）
            <li>
                该方法所需的任何参数。 
        </ol>

        这三个分量是接收对象执行所需方法的足够信息。不需要其他信息或上下文。因此，不同进程甚至不同机器上的对象可以通过使用消息相互通信。

        <h4>消息的好处</h4>
        <ul>
            <li>
                由于对象所能做的一切都是通过其方法表达的，所以消息传递支持对象之间所有可能的交互。 
            <li>
                要来回发送和接收消息，对象不需要在同一进程中，甚至不需要在相同的机器上。

        </ul>

    </blockquote>
    <p>
        <hr size=4>
    <p>
    <table width=100%>
        <tr>
            <td align=left>
                <a href="object.html"><img src=../../images/PreviousArrow.gif width=26 height=26 align=top border=0
                        alt="Previous | "></a><a href="class.html"><img src=../../images/NextArrow.gif width=26
                        height=26 align=top border=0 alt="Next | "></a><a href="../../index.html"><img
                        src=../../images/WayUpArrow.gif width=26 height=26 align=top border=0 alt="Trail Map | "></a><a
                    href="../index.html"><img src=../../images/javaHeader.gif width=26 height=26 align=top border=0
                        alt="Writing Java Programs | "></a>
            <td>
            <td align=right>
                <a href="index.html"><strong><em>面向对象编程概念：入门</em></strong></a>
            </td>
        </tr>
    </table>
</body>

</html>